<?php
declare (strict_types=1);

namespace app\common\queue\upload;

use app\common\library\Queue;
use app\common\model\Attach;

/**
 * 附件同步到云端
 */
class Check
{
    public function run()
    {
        // 查询附件
        $map     = [
            ['status', '=', 2],
            ['to_stock', '<>', 'local'],
            ['extension', 'NOT IN', 'crt']
            // ['extension', 'IN', 'jpg,png,jpeg,mp4']
        ];
        $attachs = app(Attach::class)->where($map)->limit(100)->select();

        if ($attachs->isEmpty()) return;

        foreach ($attachs as $attach) {
            // echo "-——-——-attach_to_yun_check:" . $attach->id;
            $filepath = $attach->getAttr('filepath');
            if (file_exists($filepath)) {
                // $client = new FileClient($attach['to_stock']);
                // $client->putYunFile($attach);
                // echo "-——-——--——-——--——-——--——-——--——-——--——-——-attach_to_yun_check_file_exist_handling";
                $filedata = $attach->getAttr('filedata');
                $isTemp   = is_array($filedata) ? (bool)($filedata['is_temp'] ?? false) : false;
                if (!$isTemp) {
                    // 延迟5秒执行
                    Queue::push('UploadYunSync', ['attach_id' => $attach->getAttr('id')], 5);
                }
            } else {
                // echo "-——-——--——-——--——-——--——-——--——-——--——-——-attach_to_yun_check_file_not_exist";
                $attach->status = 0;
                $attach->save();
            }
        }
    }
}
